/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Modelo;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.RenderingHints;
import java.awt.Shape;
import java.awt.geom.Ellipse2D;
import java.awt.geom.RoundRectangle2D;
import javax.swing.ButtonModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

/**
 *
 * @author Luigi
 */
public class BottonRedondo extends   JButton{

    Dimension dimen=new Dimension();
    public BottonRedondo() {
        dimen.height=7;
        dimen.height=7;
        setSize(dimen);
        setContentAreaFilled(false);
        Dimension tamano = getPreferredSize();
    tamano.width = tamano.height = Math.max( tamano.width,tamano.height );
    setPreferredSize( tamano );
    }


    protected void paintComponent( Graphics g ) {
        if( getModel().isArmed() ) {
        // Se puede hacer que la característica de Pulsado sea una propiedad de
        // esta clase
            g.setColor( Color.lightGray );
        }
        else {
            g.setColor( getBackground() );
        }
        Graphics2D g2 = (Graphics2D) g;
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                RenderingHints.VALUE_ANTIALIAS_ON);

        g2.fillOval( 0,0,getSize().width,getSize().height );

        // Llamando al método de la clase padre, haremos que aparezca el rótulo y
        // hacemos que el restángulo correspondiente al botón sea el que controla
        // el foco
        super.paintComponent( g );

    }
    protected void paintBorder( Graphics g ) {
        g.setColor( getForeground() );
        g.drawOval( 0,0,getSize().width,getSize().height );
    }

    // Este es el método que controla la posición del ratón en el momento de
    // pulsar su botón. Se sobreescribe para controlar los cambios de tamaño
    // del botón
    Shape figura;
    public boolean contains( int x,int y ) {
        // En caso de que el botón cambie de tamaño, hay que conseguir una nueva
        // figura que se adapte a ese nuevo tamaño
        if( figura == null || !figura.getBounds().equals(getBounds()) ) {
        figura = new Ellipse2D.Float( 0,0,getWidth(),getHeight() );
    }
        return( figura.contains( x,y ) );
    }



    public static void main(String []args){
        JFrame f=new JFrame();
        f.setSize(200, 200);
        BottonRedondo b=new BottonRedondo();
        b.setIcon(new ImageIcon("C:\\Users\\Luigi\\Documents\\NetBeansProjects\\Reproductor(Personalizado)\\src\\Clases\\StepForwardNormalBlue.png"));
        JPanel p=new JPanel();
        p.add(b);
        f.add(p);
        f.setVisible(true);
        //b.setVisible(true);
    }

}
